package xjggb.algorithm.排序.sort.bubble;

import xjggb.algorithm.排序.sort.Sort;

/*
*
* */
public class BubbleSort3<T extends Comparable<T>> extends Sort<T> {
    protected void sort() {
        for (int end = array.length-1; end >0 ; end--) {
            /*
            * 假设后面的数据都是排序好的
            * 那么就记录一下最后交换的地址
            * */
            int sortedIndex=1;
            for (int begin = 1; begin <=end; begin++) {
                if (cmp(begin,begin-1)<0)
                    swap(begin,begin-1);
                sortedIndex=begin;
            }
            end=sortedIndex;
        }
    }
}
